package cn.yiueil;

/**
 * 懒汉型
 * 使用双重锁校验保证线程安全
 * 使用volatile关键字保证指令重排序导致的问题
 */
public class LazySingleton {
    private volatile static LazySingleton lazySingleton;

    private LazySingleton() {

    }

    public static LazySingleton getInstance() {
        if (lazySingleton == null) {
            synchronized (LazySingleton.class) {
                if (lazySingleton == null) {
                    lazySingleton = new LazySingleton();
                }
            }
        }
        return lazySingleton;
    }
}
